package com.woniu.permissions.service;

import com.woniu.permissions.dto.AccountDto;
import com.woniu.permissions.model.Account;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.permissions.param.AccountLoginParam;
import com.woniu.permissions.param.AddAccountParam;
import com.woniu.permissions.param.AddUserAccountParam;
import com.woniu.permissions.param.UpdateAccountStateParam;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 吴彦祖
 * @since 2024年05月23日
 */
public interface AccountService extends IService<Account> {
    /**
     * 新增员工账号
     * @param toBean 新增对象
     * @return 返回成功的对象
     */
    Account addAccount(AddAccountParam toBean);
    /**
     * 根据手机账号查询员工账号
     * @param phone 手机号
     * @return 返回账号
     */
    Account selectAccount(String phone);
    /**
     * 测试
     * @return 测试成功
     */
    String gettest();
    /**
     * 根据账号id查询账号
     * @param accountId 账号id
     * @return 存在返回true 不存在返回false
     */
    Account findAccountByAccountId(String accountId);
    /**
     * 根据账号id修改账号状态
     * @param toBean 账号id 状态码
     * @return 返回修改后账号
     */
    Account updateAccountById(UpdateAccountStateParam toBean);
    /**
     * 登录
     * @param toBean 登录对象
     * @return
     */
    AccountDto login(AccountLoginParam toBean);

    /**
     * 新增用户账号
     * @param param
     * @return
     */
    Account addUserAccount(AddUserAccountParam param) throws Exception;


    /**
     * 根据用户名查询 账号对象
     * @param phone
     * @return
     */
    Account byPhone(String phone);
}
